﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using AccesoBD;
using Entidades;

namespace PresentacionEscritorio
{
    public partial class frmConsultarLlamadaDeEmergencias : Form
    {
        public frmConsultarLlamadaDeEmergencias()
        {
            InitializeComponent();
            txtFecha.Text = DateTime.Now.ToString();
        }
        int controlI = 0;
        int controlP = 0;
        private void rdbInstitucion_CheckedChanged(object sender, EventArgs e)
        {
            grdResultadoBusqueda.AllowUserToAddRows = false;
            int dia;
         
            DateTime fech = DateTime.Now;
            //dia = Convert.ToInt32(fech.ToString("dd"));
       
            grdResultadoBusqueda.Rows.Clear();
            grdResultadoBusqueda.Visible = true;
            grdResultadoBusqueda2.Visible = false;
            AtencionesExternas i = new AtencionesExternas();
            List<AtencionExterna> lista = i.mostrarInstitucionesConLlamados(fech);

            if (controlI == 0)
            {
                grdResultadoBusqueda.Columns.Add("nroAtencion", "N°Atencion");
                grdResultadoBusqueda.Columns.Add("nroOrden", "N°Orden");
                grdResultadoBusqueda.Columns.Add("obs", "Observaciones");
                grdResultadoBusqueda.Columns.Add("FechaHora", "Fecha/Hora");
                grdResultadoBusqueda.Columns.Add("Estado", "Estado");
                grdResultadoBusqueda.Columns.Add("NombreInstitucion", "Nombre");
                grdResultadoBusqueda.Columns.Add("Motivo", "Motivo");
                grdResultadoBusqueda.Columns.Add("Domicilio", "Domicilio");
                grdResultadoBusqueda.Columns.Add("Barrio", "Barrio");
                grdResultadoBusqueda.Columns.Add("Telefono", "Telefono");
                controlI = 1;

            }
            if (lista.Count != 0)
            {
                foreach (AtencionExterna item in lista)
                {

                    //grdResultadoBusqueda.Columns.Add("Medico", "Médico");

                    long id = item.codAtencion;
                    int nroOrden = item.nroOrden;
                    string obs = item.observaciones;
                    DateTime fecha = item.fechaHora;
                    string estado = item.estado;
                    string nombreInstitucion = item.NombreInstitucion;
                    string motivo = item.motivo;
                    string domicilio = item.domicilio;
                    string barrio = item.barrio;
                    long telefono = item.telefono;
                    grdResultadoBusqueda.Rows.Add(id, nroOrden, obs, fecha, estado, nombreInstitucion, motivo, domicilio, barrio, telefono);
                    foreach (DataGridViewRow row in grdResultadoBusqueda.Rows)
                        if (obs == "Urgencia" && estado == "Pendiente")
                        {
                            row.DefaultCellStyle.ForeColor = Color.Red;
                        }
                }
            }
        }

        private void btnnCancelar_Click(object sender, EventArgs e)
        {
            DialogResult result = MessageBox.Show("Seguro que desea salir?", "Aviso", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
            if (result == DialogResult.Yes)
                this.Close();
        }

        private void btnCancelarLlamado_Click(object sender, EventArgs e)
        {

            if (rdbInstitucion.Checked == true && grdResultadoBusqueda.SelectedRows.Count > 0)
            {
                int id;
                id = Convert.ToInt32(grdResultadoBusqueda.CurrentRow.Cells["nroAtencion"].Value.ToString());
                frmCancelarLlamado frm = new frmCancelarLlamado(id);
                frm.Show();
            }
            else
            {
                if (rdbPaciente.Checked == true && grdResultadoBusqueda2.SelectedRows.Count > 0)
                {
                    int id;
                    id = Convert.ToInt32(grdResultadoBusqueda2.CurrentRow.Cells["nroAtencion"].Value.ToString());
                    frmCancelarLlamado frm = new frmCancelarLlamado(id);
                    frm.Show();
                }
                else
                {
                    MessageBox.Show("Debe seleccionar una atención", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Stop);
                }
            }
        }

        private void frmConsultarLlamadaDeEmergencias_Load(object sender, EventArgs e)
        {
            txtFecha.Enabled = false;

        }

        private void btnActualizar_Click(object sender, EventArgs e)
        {

            grdResultadoBusqueda.Rows.Clear();
            grdResultadoBusqueda.AllowUserToAddRows = false;
            AtencionesExternas i = new AtencionesExternas();
            if (rdbInstitucion.Checked == true)
            {
                int dia;
             
                DateTime fech = DateTime.Now;
                //dia = Convert.ToInt32(fech.ToString("dd"));
                grdResultadoBusqueda.Visible = true;
                grdResultadoBusqueda2.Visible = false;
                grdResultadoBusqueda.Rows.Clear();
                List<AtencionExterna> lista = i.mostrarInstitucionesConLlamados(fech);
                if (lista.Count != 0)
                {
                    foreach (AtencionExterna item in lista)
                    {

                        //grdResultadoBusqueda.Columns.Add("Medico", "Médico");

                        long id = item.codAtencion;
                        int nroOrden = item.nroOrden;
                        string obs = item.observaciones;
                        DateTime fecha = item.fechaHora;
                        string estado = item.estado;
                        string nombreInstitucion = item.NombreInstitucion;
                        string motivo = item.motivo;
                        string domicilio = item.domicilio;
                        string barrio = item.barrio;
                        long telefono = item.telefono;
                        grdResultadoBusqueda.Rows.Add(id, nroOrden, obs, fecha, estado, nombreInstitucion, motivo, domicilio, barrio, telefono);
                        foreach (DataGridViewRow row in grdResultadoBusqueda.Rows)
                            if (obs == "Urgencia" && estado == "Pendiente")
                            {
                                row.DefaultCellStyle.ForeColor = Color.Red;
                            }
                    }
                }
            }
            else
            {
                grdResultadoBusqueda.Visible = false;
                grdResultadoBusqueda2.Visible = true;
                grdResultadoBusqueda2.Rows.Clear();
                List<AtencionExterna> lista = i.mostrarAfiliadosConLlamados();
                if (lista.Count != 0)
                {
                    foreach (AtencionExterna item in lista)
                    {

                        long id = item.codAtencion;
                        int nroOrden = item.nroOrden;
                        string obs = item.observaciones;
                        DateTime fecha = item.fechaHora;
                        string estado = item.estado;
                        string afiliado = item.afiliado;
                        string motivo = item.motivo;
                        //string domicilio = item.domicilio;
                        //string barrio = item.barrio;
                        long telefono = item.telefono;
                        grdResultadoBusqueda2.Rows.Add(id, nroOrden, obs, fecha, estado, afiliado, motivo, telefono);
                        foreach (DataGridViewRow row in grdResultadoBusqueda2.Rows)
                            if (obs == "Urgencia" && estado == "Pendiente")
                            {
                                row.DefaultCellStyle.ForeColor = Color.Red;
                            }
                    }
                }
            }
        }

        

        private void rdbPaciente_CheckedChanged_1(object sender, EventArgs e)
        {
            grdResultadoBusqueda.Visible = false;
            grdResultadoBusqueda2.Visible = true;
            grdResultadoBusqueda2.Rows.Clear();
            if (controlP == 0)
            {
                grdResultadoBusqueda.Visible = false;
                grdResultadoBusqueda2.Visible = true;
                grdResultadoBusqueda2.Rows.Clear();
                grdResultadoBusqueda2.Columns.Add("nroAtencion", "N°Atencion");
                grdResultadoBusqueda2.Columns.Add("nroOrden", "N°Orden");
                grdResultadoBusqueda2.Columns.Add("obs", "Observaciones");
                grdResultadoBusqueda2.Columns.Add("FechaHora", "Fecha/Hora");
                grdResultadoBusqueda2.Columns.Add("Estado", "Estado");
                grdResultadoBusqueda2.Columns.Add("NombreAfiliado", "Afiliado");
                grdResultadoBusqueda2.Columns.Add("Motivo", "Motivo");
                //grdResultadoBusqueda.Columns.Add("Domicilio", "Domicilio");
                //grdResultadoBusqueda.Columns.Add("Barrio", "Barrio");
                grdResultadoBusqueda2.Columns.Add("Telefono", "Telefono");
                controlP = 1;
            }
            AtencionesExternas i = new AtencionesExternas();
            List<AtencionExterna> lista = i.mostrarAfiliadosConLlamados();
            if (lista.Count != 0)
            {
                foreach (AtencionExterna item in lista)
                {

                    //grdResultadoBusqueda.Columns.Add("Medico", "Médico");

                    long id = item.codAtencion;
                    int nroOrden = item.nroOrden;
                    string obs = item.observaciones;
                    DateTime fecha = item.fechaHora;
                    string estado = item.estado;
                    string afiliado = item.afiliado;
                    string motivo = item.motivo;
                    //string domicilio = item.domicilio;
                    //string barrio = item.barrio;
                    long telefono = item.telefono;

                    grdResultadoBusqueda2.Rows.Add(id, nroOrden, obs, fecha, estado, afiliado, motivo, telefono);


                    foreach (DataGridViewRow row in grdResultadoBusqueda2.Rows)
                        if (obs == "Urgencia" && estado == "Pendiente")
                        {
                            row.DefaultCellStyle.ForeColor = Color.Red;
                        }

                }
            }
            else
            {
                MessageBox.Show("No se encuentran atenciones en espera", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information);
            }


        }

        

        



    }
}
